<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    // 自己定义 数组扩展方法  求和 和 最大值
    // 1.我们定义的这个方法，任何一个数组实例对象都可以使用
    // 2.自定义的方法写到  数组.prototype 身上


    const arr = [1, 2, 3]
    // 1.最大值
    Array.prototype.max = function (arr) {
      // 展开运算符
      return Math.max(...this)
      // 原型函数里面的this指向谁？ 实例对象arr
    }
    console.log(arr.max())  // 3
    console.log([2, 4, 7].max())  // 7

    // 2.最小值
    Array.prototype.min = function (arr) {
      // 展开运算符
      return Math.min(...this)
      // 原型函数里面的this指向谁？ 实例对象arr
    }
    console.log(arr.min())  // 1
    console.log([2, 4, 7].min())  // 2
    // const arr = new Array(1, 2)
    // console.log(arr)

    // 3.数组求和 方法
    Array.prototype.sum = function () {
      return this.reduce((prev, item) => prev + item, 0)
    }
    console.log([1, 2, 3, 4].sum())  // 10
    console.log([18, 4, 76, 7].sum())  // 105
  </script>
</body>

</html>